//
//  DetailListCell.swift
//  Wmsmobile
//
//  Created by Nick xu on 16/8/18.
//  Copyright © 2016年 www.hd123.com. All rights reserved.
//

import UIKit

protocol  DetailListCellProtcol:NSObjectProtocol{
    func setRealHeight(_ height: CGFloat)
}

protocol  DetailListCellDisplayViewProtcol:NSObjectProtocol{
    weak var heightDelegate : DetailListCellProtcol?{ get set}
    var anyInfo: AnyObject? {set get}
}

class DetailListCell: FounctionBaseCell , DetailListCellProtcol {
    
     //MARK: - property
    override var info: [String : String]?{
        didSet{
            let tableViewName = info!["tableViewName"]
            //            let displayViewClass = stringClassFromString(tableViewName!)
            if let className = stringClassFromStringOptional(tableViewName!) {
                if let displayViewClass = className as? UIView.Type {
                    print(displayViewClass.self)
                    let view = displayViewClass.init()
                    displayView = view
                    //                    displayView = displayViewClass.init()
                    if tableViewName == "ChkBinInfoPickTableview" {
                        displayView!.frame = CGRect(x: 0, y: 0, width: KscreenWidth, height: 186)
                    }else{
                        displayView!.frame = CGRect(x: 0, y: 0, width: KscreenWidth, height: 44)
                    }
                    self.contentView.addSubview(displayView!)
                }
            }
            
        }
    }
    weak var displayView:UIView?
    var realHeight:CGFloat?
    var anyInfo:AnyObject?{
        didSet{
        let view = displayView as! DetailListCellDisplayViewProtcol
            view.heightDelegate = self
            view.anyInfo = anyInfo
        }
    }
    func setRealHeight(_ height: CGFloat) {
        displayView?.height = height
        realHeight = height
    }
//    var dataArray:[[String : String]]?{
//        didSet{
//            displayView.dataArray = dataArray
//            displayView.height = 44 * CGFloat(dataArray?.count ?? 1)
//        }
//    }
//    lazy private var displayView:UIView = {
//        let tableViewName = info["tableViewName"]
//        let view = BinSpecTableview(frame: CGRectMake(0, 0, KscreenWidth, 44), style: UITableViewStyle.Plain)
//        return view
//    }()

    
    override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
        super.init(style: style, reuseIdentifier: reuseIdentifier)
    }
    
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    required init() {
    super.init(style: UITableViewCellStyle.default, reuseIdentifier: "DetailListCell")
       
    }

    
    
    
    
    
    
    
    
    
    
//    //MARK: - property
//    var dispalyKey: String?
//    var keysToDisplay : [String]?
//    var iconOn: Bool = false
//    var dataArray:[[String : String]]?
//    override var info: [String : String]?{
//        didSet{
//            self.dispalyKey = info!["keyToDisplay"]
//            self.keysToDisplay = (info!["keyToDisplay"]?.componentsSeparatedByString("/"))!
//            self.iconOn = info!["iconOn"] == nil ? false : true
//        }
//    }
//    var keyToDisplay: String?{
//        set{
//            dispalyKey = newValue
//        }
//        get{
//            return dispalyKey
//        }
//    }
//    
//    //MARK: - life cycle
//    override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
//        super.init(style: UITableViewCellStyle.Default, reuseIdentifier: "ProductInfocell")
//        self.setUpUI()
//    }
//    
//    required init?(coder aDecoder: NSCoder) {
//        super.init(coder: aDecoder)
//        self.setUpUI()
//    }
//    
//    required init() {
//        super.init(style: UITableViewCellStyle.Default, reuseIdentifier: "ProductInfocell")
//        self.setUpUI()
//    }
//    //MARK: - public
//    override func clearContent() {
//        label1.text = ""
//        label2.text = ""
//        label3.text = ""
//    }
//    //MARK: - private
//    func setUpUI(){
//        self.contentView.addSubview(label1)
//        self.contentView.addSubview(label2)
//        self.contentView.addSubview(label3)
//        self.contentView.addSubview(icon)
//        self.contentView.addSubview(bottomIndector)
//        
//        
//        label1.snp.makeConstraints { (make) in
//            make.left.equalTo(self.contentView).offset(5)
//            make.centerY.equalTo(self.contentView)
//        }
//        label2.snp.makeConstraints { (make) in
//            make.centerY.equalTo(self.contentView)
//            if self.keysToDisplay?.count == 3{
//                make.centerX.equalTo(self.contentView)
//            }else{
//                make.trailing.equalTo(self.contentView).offset(-5)
//            }
//        }
//        label3.snp.makeConstraints { (make) in
//            make.centerY.equalTo(self.contentView)
//            make.trailing.equalTo(self.contentView).offset(-5)
//        }
//        if self.keysToDisplay?.count == 2{
//            label3.hidden = true
//        }
//        
//        bottomIndector.snp.makeConstraints { (make) in
//            make.bottom.equalTo(self)
//            make.centerX.equalTo(self)
//            make.width.equalTo(self)
//            make.height.equalTo(2)
//        }
//
//    }
//    
//    //MARK: - delegate
//    func setDetail(string: String){
//        let values = string.componentsSeparatedByString("/")
//        label1.text = values[0]
//        label2.text = values[1]
//        label3.text = values.count > 2 ? values[2] : ""
//    }
//    func isEmpty() -> (Bool) {
//        
//        return false
//    }
//    
//    lazy private var label1:UILabel = {
//        let label = UILabel()
//        return label
//    }()
//    lazy private var label2:UILabel = {
//        let label = UILabel()
//        return label
//    }()
//    lazy private var label3:UILabel = {
//        let label = UILabel()
//        return label
//    }()
//    lazy private var icon:UIImageView = {
//        let icon = UIImageView()
//        icon.image = UIImage(named: "OK")
//        return icon
//    }()
//    lazy private var bottomIndector:UIView = {
//        let indector = UIView()
//        indector.backgroundColor = UIColor.hexStringToUIColor("#f0eff5")
//        return indector
//    }()


}
